

A() {
    完成 A 操作;
    V(sem_AC);  // 给 C 发送信号
}

B() {
    完成 B 操作;
    V(sem_BC);  // 给 C 发送信号
}

C() {
    P(sem_AC);  // 等待 A 的完成
    P(sem_BC);  // 等待 B 的完成
    完成 C 操作;
    V(sem_CE);  // 给 E 发送信号
}

D() {
    完成 D 操作;
    V(sem_DE);  // 给 E 发送信号
}

E() {
    P(sem_CE);  // 等待 C 的完成
    P(sem_DE);  // 等待 D 的完成
    完成 E 操作;
}



